Combining algebraic effects with continuations
نویسندگان
چکیده
We consider the natural combinations of algebraic computational effects such as side-effects, exceptions, interactive input/output, and nondeterminism with continuations. Continuations are not an algebraic effect, but previously developed combinations of algebraic effects given by sum and tensor extend, with effort, to include commonly used combinations of the various algebraic effects with continuations. Continuations also give rise to a third sort of combination, that given by applying the continuations monad transformer to an algebraic effect. We investigate the extent to which sum and tensor extend from algebraic effects to arbitrary monads, and the extent to which Felleisen et al’s C operator extends from continuations to its combination with algebraic effects. To do all this, we use Dubuc’s characterisation of strong monads in terms of enriched large Lawvere theories.
منابع مشابه
Programming with algebraic effects and handlers
Eff is a programming language based on the algebraic approach to computational effects, in which effects are viewed as algebraic operations and effect handlers as homomorphisms from free algebras. Eff supports first-class effects and handlers through which we may easily define new computational effects, seamlessly combine existing ones, and handle them in novel ways. We give a denotational sema...
متن کاملLinear continuations and duality
One fundamental aspect of linear logic is that its conjunction behaves in the same way as a tensor product in linear algebra. Guided by this intuition, we investigate the algebraic status of disjunction – the dual of conjunction – in the presence of linear continuations. We start from the observation that every monoidal category equipped with a tensorial negation inherits a lax monoidal structu...
متن کاملA Counterexample to Tensorability of Effects
Monads are widely used in programming semantics and in functional programming to encapsulate notions of side-effect, such as state, exceptions, input/output, or continuations. One of their advantages is that they allow for a modular treatment of effects, using composition operators such as sum and tensor. Here, the sum represents the non-interacting combination of effects, while the tensor impo...
متن کاملContinuations and Web Servers
Programming web applications in direct style with the help of continuations is a much simpler, safer, modular and better-performing technology than the current dominating “page-centric” technology combining CGI scripts, active pages or servlets. This paper discusses the use of continuations in the context of web applications, the problems they solve as well as some new problems they introduce.
متن کاملEffekt: Extensible Algebraic Effects in Scala
Algebraic effects are an interesting way to structure effectful programs and offer new modularity properties. We present the Scala library Effekt, which is implemented in terms of a monad for multi-prompt delimited continuations and centered around capability passing. This makes the newly proposed feature of implicit function types a perfect fit for the syntax of our library. Basing the library...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Theor. Comput. Sci.
دوره 375 شماره
صفحات -
تاریخ انتشار 2007